Networking Requirements

To connect to a local or remote database using the Server Manager or Windows ISQL, at least one of the following must be installed:

A fully Winsock 1.1 compliant TCP/IP package.

A supported TCP/IP package.

Novell SPX/IPX (for connection to NetWare servers only).

NetBEUI/Named Pipes, from Windows for Workgroups or LAN Manager (for connection to Windows NT servers only).

Network Library Files

For TCP/IP, if you did not previously have a Winsock driver or if you chose not to use an existing Winsock driver, the installation program installs the JSB Winsock network libraries in the WINDOWS directory. These drivers enable a TCP/IP product that is not Winsock-compliant to communicate via Windows Sockets to the InterBase server.

The JSB Winsock libraries include:

WINSOCK.DLL: Windows Socket compliant API. Applications that make Winsock-compliant calls use this API to communicate to various vendors' TCP/IP transports.

VSL Driver/Service Provider: The API which allows an application to communicate with a non-compliant Windows Socket driver.

MSOCKLIB.DLL: Dynamic link library that maps Windows Socket calls to the VSL Driver/Service Provider.

MVWASYNC.EXE: Used to handle asynchronous communication between a Windows Socket compliant application and a non-compliant TCP/IP transport. If you chose TCP/IP and a valid Winsock driver was found, no additional files will be installed.

VSL.INI: Configuration file used to specify various TCP/IP transports.

For Novell SPX, the installation program installs NWIPXSPX.DLL and NWCALLS.DLL into the WINDOWS directory.

NetBEUI/Named Pipes requires NETAPI.DLL, which is installed with Windows for Workgroups or LAN Manager.


TCP/IP Networking
TCP/IP

To use TCP/IP, the Windows Client writes to the Windows Sockets (Winsock) API, a standard TCP/IP socket interface for Windows applications. Many TCP/IP software vendors have adopted this standard and provide Winsock drivers with their products. However, there are still many TCP/IP implementations that are not Winsock-compliant.

The Windows Client package includes the Winsock driver from JSB Corporation that provides compatibility with a wide variety of TCP/IP implementations. The JSB Winsock driver uses the Virtual Socket Library (VSL), an applications programming interface that supports multiple TCP/IP implementations.

You may use a Winsock driver other than the JSB driver, as long as it complies with the Winsock standard. If you have an existing Winsock driver used by other applications, you may wish to continue using it for simplicity.

Configuring Network Sockets

Identifying the Server IP Address

Identifying the Server Port Number

TSR Arguments

TCP/IP Product Notes

TCP/IP Troubleshooting


Supported TCP/IP Implementations

The JSB Winsock driver enables the InterBase Windows Client to use any of the following TCP/IP implementations.

Many of the newer TCP/IP stacks are Winsock-compliant and provide their own WINSOCK.DLL. In addition to the TCP/IP implementations in Table 2-1, the InterBase Windows Client will also work with any fully compliant Winsock 1.1 driver. If you have a Winsock-compliant TCP/IP installed, then you should choose to use that WINSOCK.DLL during installation.

Product	Version	Executable or DLL
3Com 3+Open TCP	1.1, 1.2 2.0 2.1	M3OPEN.EXE (TSR) M3OPEN.DLL, M3OPEN.EXE (TSR) M3OPEN.EXE (TSR)
Beame & Whiteside TCP/IP	2.2, 2.3, 3.0, 3.0c	MBW.EXE (TSR)
Digital PATHWORKS for DOS	4.1	M3OPEN.EXE (TSR)
FTP PC/TCP	2.04, 2.05, 2.1, 2.2	MFTP.EXE (TSR)
HP ARPA Services for DOS	2.1	MHARPA.DLL
Microsoft LAN Manager TCP/IP	2.1, 2.1a	M3OPEN.EXE (TSR) MHARPA.DLL
Novell LAN Workplace for DOS	4.0, 4.01, 4.1	MNOVLWP.DLL
Sun PC-NFS TCP/IP	3.0 3.5 4.0a, 5.0	MPCNFS.EXE (TSR) MPCNFS2.EXE (TSR) MPCNFS4.DLL
Ungerman-Bass Net/One TCP/IP	16.4, 16.5, 16.6	MNETONE.EXE (TSR)
Wollongong Win/TCP for DOS	4.1.1	MWINTCP.EXE (TSR)
Wollongong PathWay Access for DOS	1.1, 1.1.2, 2.0	MPATHWAY.DLL
TCP/IP packages are implemented as either a dynamic link library (DLL) or a terminate-and-stay-resident (TSR) program. If implemented as a DLL, then the InterBase Windows Client will work automatically after installation. If implemented as a TSR, the specific JSB component for that transport may require some special configuration, loading, and unloading.


Configuring Network Sockets

Each InterBase server connection will use its own socket. Each database connection uses one additional socket for all events on that connection. These sockets will be freed when the client application disconnects from the database or terminates normally.

If an application exits abnormally, for example from a protection fault, the sockets may not be freed. Over time, this can cause the system to run out of sockets. If this occurs, InterBase will display a socket error when an application tries to connect. To correct this, restart the client PC.

A minimum of eight sockets is recommended. The maximum number of sockets depends on the networking software being used and the desired performance. To determine how to configure the number of network sockets, see the communication software vendor's documentation.

Note:	Each socket allocated consumes real memory. Consider memory limitations when configuring the number of sockets.

If an application attempts to make a connection beyond the number of sockets configured, the server connection will fail and return an error message.


Identifying the Server IP Address

Before the Windows Client can connect to an InterBase server via TCP/IP, the server must be registered in the HOSTS file on the client or the client must be properly configured to use Domain Name Services (DNS). This file lists the network IP address of every host that the PC can access over the network. The location of this file depends on the TCP software being used--refer to the vendor's documentation.

The HOSTS file consists of a series of lines formatted as follows:

IP_address	hostname [alias]

where:

IP_address is the internet address of the host computer. Ask the network administrator for the host machine's TCP/IP internet address.

hostname is the name of the host associated with the internet address.

alias is an optional alternate name for the host.

For example, a host named SLUG (with alias BNSLUG) might be referenced in the HOSTS file as follows:

144.286.78.23 	SLUG [BNSLUG]


Identifying the Server Port Number

To connect with TCP/IP to an InterBase server on the network, the client must identify the server's port number in its SERVICES file. The SERVICES file is an ASCII text file that contains the names of the available services on the network, and defines how those services are mapped to the TCP/IP port number to which they are attached.

InterBase uses port 3050 for the TCP/IP protocol. Therefore, ensure that the client's SERVICES file contains the following line:

gds_db	3050/tcp

gds_db is the name of the server process used by InterBase, 3050 is the port number, and TCP is the protocol used. If you specified the location of the SERVICES file during installation, then the installation program adds the above entry to the file.

Note:	Each entry in the SERVICES file must be terminated by a newline character. Some editors, such as Windows Notepad, do not put a newline character at the end of a file. Make sure there is a terminating newline if the entry is the last in the SERVICE file.


TSR Arguments

Some TCP/IP products are implemented as terminate-and-stay-resident programs (TSRs). A TSR is loaded from the command line by entering the name of the executable. For example, if the 3Com TCP/IP is in a directory named NET, then the command:

C:> NET\M3OPEN

loads the TSR into memory, where it remains active until it is unloaded or the operating system is rebooted. Typically, the AUTOEXEC.BAT file contains commands to load TSRs. A common set of command-line arguments may be supplied to TSRs, as described in the following table.

The command-line syntax is:

tsr_exec /arg[param]

where tsr_exec is the name of the TSR executable, arg is the command line argument, and param is a parameter, if required.

Argument	Description

? or h	Displays the valid command line arguments for the TSR.

v	Specifies verbose loading of the TSR.

u	Unloads the TSR, if possible.

f	Forces unloading of the TSR, ignoring any safety checks. Can be used to unload the TSR from high memory or from a batch file. May leave PC in an unstable condition.

xvec	Loads the TSR at an interrupt vector vec. Normally, the TSR looks for a free vector in the range 0x66 to 0x60.

cnum	Specifies maximum of num sockets to open concurrently. For most transports, this is specified via stack configuration.

pnum	Sets aside num paragraphs for dynamic heap allocation. Overrides built-in product-specific default.

i	Omits default standard int2F multiplex interrupts normally used by TSRs.


TCP/IP Product Notes

The following sections provide some helpful notes for using the InterBase Windows Client with specific vendors' TCP/IP packages.

3Com 3+Open TCP

Digital Pathworks for DOS

FTP PC/TCP

Microsoft LAN Manager TCP/IP

Novell LAN WorkPlace for DOS

Sun PC-NFS TCP/IP

Ungermann-Bass Net/One TCP/IP

Wollongong TCP/IP


3Com 3+Open TCP

When configuring the number of TCP sockets, the TCPCONNECTIONS parameter in the [TCPIP] section of PROTOCOL.INI determines the number of concurrent TCP connections allowed by 3Com TCP.


Digital Pathworks for DOS

This product is based on 3Com 3+Open TCP, and all the same comments apply. For more information, see 3Com 3+Open TCP.


FTP PC/TCP

The FTP PC/TCP Virtual Device Driver (VxD) is required to run other FTP applications alongside VSL-derived applications over FTP TCP/IP.

Be sure to allocate enough TCP and packet buffers for the application within the FTP kernel. For example:

"kernel-name" -t 16 -p 20

This statement allocates 16 TCP connections and 20 packet buffers.

Device driver entries for IPCUST.SYS and IFCUST.SYS must be configured into CONFIG.SYS even for version 2.1.

Intermittent problems with FTP when using a packet driver can usually be eliminated by running with a packet driver of version 7.3 or later.

Once the maximum number of connections has been reached, it may prove difficult to make any connection thereafter until all--or almost all--connections have been closed. It is therefore recommended to set the maximum number of connections to a higher value than actually needed.


Microsoft LAN Manager TCP/IP

Ensure that the NUMSOCKETS parameter in the [SOCKETS] section of TCPUTILS.INI is set to the maximum concurrent number of connections required.

Ensure that you invoke the SOCKTSR.EXE TSR in the \LANMAN\ARPA directory.


Novell LAN WorkPlace for DOS

The device VTCPIP.386 must be present in the [386Enh] section of the SYSTEM.INI file in the WINDOWS directory. If this is not present, then a general protection fault may occur in WLIBSOCK.DLL when trying to connect.


Sun PC-NFS TCP/IP

The PC-NFS libraries necessarily linked into the MPCNFS.EXE TSR require a large amount of memory. To reduce memory requirements, use the /C number argument to reduce the number of concurrent sockets managed by the TSR, or switch to PC-NFS 3.5 or above. Version 3.0 supports a maximum of eight sockets.

With version 3.5 and above, the Sun Resident Transport Module, RTM.EXE, must be loaded before invoking Windows. The /HEAP parameter must be specified with RTM.EXE if more than eight sockets are required. Each connection consumes 4K, so RTM/HEAP 60 specifies the maximum 15 sockets.

With version 3.5, if DNS is loaded on the network, and you want PC-NFS to recognize it, load RNMIS instead of RNMFILE. If DNS is not running, load RNMFILE and add the following line to your AUTOEXEC.BAT:

SET NFSPATH = <path>

where path is the location of the HOSTS file. If PC-NFS does not find a HOSTS file at the location specified by NFSPATH, it searches for that file in the NFS home directory.

The following table describes pertinent TSR command-line arguments:

Argument	Description

/n	Packet buffer size. Determines size of network packets. Default: 512.

/r	Read/Send buffer size. Determines buffer sizes. Default: 1024.

/y	Specifies that Sun Yellow Pages facility is being used.


Ungermann-Bass Net/One TCP/IP

If intermittent problems occur with Net/One v16.4, update to v16.5 or later.


Wollongong TCP/IP

To successfully run over either of the Wollongong transports, you may need to increase the number of large packet buffers configured by Wollongong's CUSTOM program to be 20 or more.

Ensure that the number of NETBIOS sessions (sockets) configured by the CUSTOM utility is set high enough. You need to configure four more than are actually needed (so configuring 16 will actually provide 12).

If the transport is unreliable, especially with Win/TCP, try changing the size of the large packet buffers configured by Wollongong's CUSTOM program to 400 or less.

Ensure that the host name has a valid entry in the HOSTS file or, if using a name server, that the name server has a valid entry for your machine. You must also ensure that the host name has been configured using Wollongong's CUSTOM program.


TCP/IP Troubleshooting

When using TCP/IP, ensure that the application is using the correct WINSOCK.DLL. If you chose to use an existing Winsock driver during installation, then ensure that the Winsock driver is in the correct directory, so that it is found by applications using the above search path.

Important:	It is recommended to have only one WINSOCK.DLL in the above search path. If there are multiple DLLs, different applications can behave differently, depending on which DLL they find.

If you are using the JSB Winsock driver supplied with the InterBase Windows Client, ensure that:

The JSB WINSOCK.DLL is in the WINDOWS directory.

The application is not finding a WINSOCK.DLL in another directory and using it instead.

If you encounter problems establishing a connection between the Windows Client and the server, first determine if client and server can communicate over the network at all. Use the standard ping feature of TCP/IP to see if the client recognizes the existence of the server on the network. Simply type the following command on the client:

ping HOSTNAME

where HOSTNAME is the name of the InterBase server machine. Refer to your TCP/IP documentation for specific information on using ping.

If the host responds to the ping, a message will be displayed on the screen. If the host does not respond, then the source of the problem is in the TCP/IP software or its configuration. If the host does respond, then the source of the problem may be with the configuration of the Windows Client.


Novell SPX/IPX

If you get an error trying to initialize the network while using Novell SPX to connect to a Novell server, make sure that NetWare is the configured network. Double-click on the Windows Setup icon in the Main program group. Choose Options | System Configuration. A window will appear that should display:

Network: Novell NetWare (shell versions 3.x)

For more information on configuring Windows, refer to the Microsoft Windows documentation.


NetBEUI/Named Pipes

To connect to an InterBase for Windows NT server, you must either be logged in to Windows for Workgroups using a user name and password that is valid on the NT machine or an undefined NT user name which will default to the GUEST user. If you are logged on to Windows for Workgroups with a valid user name but different password, the InterBase connection will fail with an error trying to create the pipe.

NetBEUI connections from a Windows Client running on the 16-bit subsystem of Windows NT to a server on the same NT machine can take an unusually long time to complete. This occurs because the foreground client application runs at a higher priority than the background server process and so can potentially deprive the server of a CPU share. To correct this problem, you can either boost the InterBase server priority or change the relative priority of foreground and background processes. For information on how to do either of these, see Installing and Running on Windows NT.